[INFO] cloning repository https://github.com/alexrudy/AoC2018
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/alexrudy/AoC2018" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falexrudy%2FAoC2018", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falexrudy%2FAoC2018'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 514fcf28f08f5b6d0633091991d60ccf0b84919e
[INFO] checking alexrudy/AoC2018 against try#b946edaa85de45f124065f52b1bc55ba2fb4f9fb for pr-157562
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falexrudy%2FAoC2018" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/alexrudy/AoC2018
[INFO] finished tweaking git repo https://github.com/alexrudy/AoC2018
[INFO] tweaked toml for git repo https://github.com/alexrudy/AoC2018 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/alexrudy/AoC2018 on toolchain b946edaa85de45f124065f52b1bc55ba2fb4f9fb
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b946edaa85de45f124065f52b1bc55ba2fb4f9fb" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/alexrudy/AoC2018 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b946edaa85de45f124065f52b1bc55ba2fb4f9fb" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3e793bdf10248eb2ddbd6b0faebed8155c11b4589982e2893733958d93e8d540" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] d006c859d806bbe4efcdf77292de6a4c9f718f9795bc11b00c86dc67966e45a8
[INFO] running `Command { std: "docker" "start" "d006c859d806bbe4efcdf77292de6a4c9f718f9795bc11b00c86dc67966e45a8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d006c859d806bbe4efcdf77292de6a4c9f718f9795bc11b00c86dc67966e45a8" "/opt/rustwide/cargo-home/bin/cargo" "+b946edaa85de45f124065f52b1bc55ba2fb4f9fb" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d006c859d806bbe4efcdf77292de6a4c9f718f9795bc11b00c86dc67966e45a8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d006c859d806bbe4efcdf77292de6a4c9f718f9795bc11b00c86dc67966e45a8" "/opt/rustwide/cargo-home/bin/cargo" "+b946edaa85de45f124065f52b1bc55ba2fb4f9fb" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling num-integer v0.1.39
[INFO] [stderr]    Compiling serde v1.0.82
[INFO] [stderr]    Compiling backtrace-sys v0.1.26
[INFO] [stderr]    Compiling failure_derive v0.1.3
[INFO] [stderr]     Checking unicode-width v0.1.5
[INFO] [stderr]     Checking itertools v0.7.11
[INFO] [stderr]     Checking log v0.4.6
[INFO] [stderr]    Compiling num-complex v0.2.1
[INFO] [stderr]    Compiling num-iter v0.1.37
[INFO] [stderr]    Compiling ncurses v5.97.0
[INFO] [stderr]    Compiling syn v0.14.9
[INFO] [stderr]    Compiling enumset_derive v0.2.0
[INFO] [stderr]     Checking reexport-proc-macro v1.0.5
[INFO] [stderr]     Checking parking_lot_core v0.4.0
[INFO] [stderr]     Checking array-macro v1.0.2
[INFO] [stderr]     Checking arc-swap v0.3.6
[INFO] [stderr]     Checking strsim v0.7.0
[INFO] [stderr]     Checking term_size v0.3.1
[INFO] [stderr]     Checking xi-unicode v0.1.0
[INFO] [stderr]     Checking maplit v1.0.1
[INFO] [stderr]     Checking unicode-segmentation v1.2.1
[INFO] [stderr]     Checking textwrap v0.10.0
[INFO] [stderr]     Checking parking_lot v0.7.0
[INFO] [stderr]     Checking atty v0.2.11
[INFO] [stderr]     Checking vec_map v0.8.1
[INFO] [stderr]     Checking ansi_term v0.11.0
[INFO] [stderr]     Checking signal-hook v0.1.6
[INFO] [stderr]    Compiling serde_derive v1.0.82
[INFO] [stderr]    Compiling ryu v0.2.7
[INFO] [stderr]     Checking num-rational v0.2.1
[INFO] [stderr]    Compiling unicode-xid v0.0.4
[INFO] [stderr]     Checking chrono v0.4.6
[INFO] [stderr]    Compiling synom v0.11.3
[INFO] [stderr]    Compiling quote v0.3.15
[INFO] [stderr]    Compiling pest v1.0.6
[INFO] [stderr]     Checking clap v2.32.0
[INFO] [stderr]     Checking enumset v0.3.14
[INFO] [stderr]     Checking crossbeam-channel v0.3.4
[INFO] [stderr]    Compiling heck v0.3.1
[INFO] [stderr]     Checking cast v0.2.2
[INFO] [stderr]     Checking num v0.2.0
[INFO] [stderr]     Checking term v0.5.1
[INFO] [stderr]     Checking csv-core v0.1.5
[INFO] [stderr]     Checking rand v0.4.3
[INFO] [stderr]    Compiling syn v0.11.11
[INFO] [stderr]     Checking quick-error v1.2.2
[INFO] [stderr]     Checking thread-scoped v1.0.2
[INFO] [stderr]     Checking criterion-plot v0.2.5
[INFO] [stderr]    Compiling structopt-derive v0.2.14
[INFO] [stderr]     Checking itertools-num v0.1.3
[INFO] [stderr]     Checking backtrace v0.3.13
[INFO] [stderr]     Checking failure v0.1.3
[INFO] [stderr]     Checking simplelog v0.5.3
[INFO] [stderr]     Checking criterion-stats v0.2.5
[INFO] [stderr]     Checking geometry v0.1.0 (/opt/rustwide/workdir/geometry)
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> geometry/src/lib.rs:124:17
[INFO] [stdout]     |
[INFO] [stdout] 124 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Fail` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParsePointError`
[INFO] [stdout] 125 | pub enum ParsePointError {
[INFO] [stdout]     |          --------------- `ParsePointError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> geometry/src/lib.rs:124:17
[INFO] [stdout]     |
[INFO] [stdout] 124 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Display` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParsePointError`
[INFO] [stdout] 125 | pub enum ParsePointError {
[INFO] [stdout]     |          --------------- `ParsePointError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> geometry/src/lib.rs:322:19
[INFO] [stdout]     |
[INFO] [stdout] 322 |     pub fn points(&self) -> BoundingBoxIterator {
[INFO] [stdout]     |                   ^^^^^     ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 322 |     pub fn points(&self) -> BoundingBoxIterator<'_> {
[INFO] [stdout]     |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> geometry/src/lib.rs:124:17
[INFO] [stdout]     |
[INFO] [stdout] 124 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Fail` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParsePointError`
[INFO] [stdout] 125 | pub enum ParsePointError {
[INFO] [stdout]     |          --------------- `ParsePointError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> geometry/src/lib.rs:124:17
[INFO] [stdout]     |
[INFO] [stdout] 124 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Display` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParsePointError`
[INFO] [stdout] 125 | pub enum ParsePointError {
[INFO] [stdout]     |          --------------- `ParsePointError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> geometry/src/lib.rs:322:19
[INFO] [stdout]     |
[INFO] [stdout] 322 |     pub fn points(&self) -> BoundingBoxIterator {
[INFO] [stdout]     |                   ^^^^^     ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 322 |     pub fn points(&self) -> BoundingBoxIterator<'_> {
[INFO] [stdout]     |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling enum-map-derive v0.4.0
[INFO] [stderr]     Checking enum-map v0.4.1
[INFO] [stderr]    Compiling pest_derive v1.0.8
[INFO] [stderr]     Checking structopt v0.2.14
[INFO] [stderr]     Checking toml v0.4.10
[INFO] [stderr]     Checking docopt v1.0.2
[INFO] [stderr]     Checking serde_json v1.0.33
[INFO] [stderr]     Checking csv v1.0.5
[INFO] [stderr]     Checking cursive v0.10.0
[INFO] [stderr]     Checking handlebars v0.32.4
[INFO] [stderr]     Checking cursive_aoc_views v0.1.0 (/opt/rustwide/workdir/cursive_aoc_views)
[INFO] [stderr]     Checking goblinwars v0.1.0 (/opt/rustwide/workdir/goblinwars)
[INFO] [stderr]     Checking criterion v0.2.5
[INFO] [stdout] warning: the feature `try_from` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> cursive_aoc_views/src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(try_from)]
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `try_from` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> cursive_aoc_views/src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(try_from)]
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking waterfall v0.1.0 (/opt/rustwide/workdir/waterfall)
[INFO] [stderr]     Checking carts v0.1.0 (/opt/rustwide/workdir/carts)
[INFO] [stdout] warning: the feature `try_from` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> goblinwars/src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(try_from)]
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `try_from` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> carts/src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(try_from)]
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `try_from` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> carts/src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(try_from)]
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `try_from` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> waterfall/src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(try_from)]
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> carts/src/cart.rs:9:17
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Debug, Fail, PartialEq)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Fail` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_CartError`
[INFO] [stdout] 10 | pub enum CartError {
[INFO] [stdout]    |          --------- `CartError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> carts/src/cart.rs:9:17
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Debug, Fail, PartialEq)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Display` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_CartError`
[INFO] [stdout] 10 | pub enum CartError {
[INFO] [stdout]    |          --------- `CartError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> carts/src/cart.rs:26:17
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[derive(Debug, Fail, PartialEq)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Fail` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_CartAdvanceError`
[INFO] [stdout] 27 | pub(crate) enum CartAdvanceError {
[INFO] [stdout]    |                 ---------------- `CartAdvanceError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> carts/src/cart.rs:26:17
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[derive(Debug, Fail, PartialEq)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Display` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_CartAdvanceError`
[INFO] [stdout] 27 | pub(crate) enum CartAdvanceError {
[INFO] [stdout]    |                 ---------------- `CartAdvanceError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> carts/src/layout.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 | #[derive(Debug, Fail, PartialEq)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Fail` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_LayoutError`
[INFO] [stdout] 33 | pub enum LayoutError {
[INFO] [stdout]    |          ----------- `LayoutError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> carts/src/layout.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 | #[derive(Debug, Fail, PartialEq)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Display` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_LayoutError`
[INFO] [stdout] 33 | pub enum LayoutError {
[INFO] [stdout]    |          ----------- `LayoutError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> carts/src/point.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Fail` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_DirectionParseError`
[INFO] [stdout] 24 | pub enum DirectionParseError {
[INFO] [stdout]    |          ------------------- `DirectionParseError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> carts/src/point.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Display` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_DirectionParseError`
[INFO] [stdout] 24 | pub enum DirectionParseError {
[INFO] [stdout]    |          ------------------- `DirectionParseError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `try_from` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> waterfall/src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(try_from)]
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> carts/src/cart.rs:9:17
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Debug, Fail, PartialEq)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Fail` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_CartError`
[INFO] [stdout] 10 | pub enum CartError {
[INFO] [stdout]    |          --------- `CartError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> carts/src/cart.rs:9:17
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Debug, Fail, PartialEq)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Display` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_CartError`
[INFO] [stdout] 10 | pub enum CartError {
[INFO] [stdout]    |          --------- `CartError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> carts/src/cart.rs:26:17
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[derive(Debug, Fail, PartialEq)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Fail` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_CartAdvanceError`
[INFO] [stdout] 27 | pub(crate) enum CartAdvanceError {
[INFO] [stdout]    |                 ---------------- `CartAdvanceError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> carts/src/cart.rs:26:17
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[derive(Debug, Fail, PartialEq)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Display` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_CartAdvanceError`
[INFO] [stdout] 27 | pub(crate) enum CartAdvanceError {
[INFO] [stdout]    |                 ---------------- `CartAdvanceError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> carts/src/layout.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 | #[derive(Debug, Fail, PartialEq)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Fail` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_LayoutError`
[INFO] [stdout] 33 | pub enum LayoutError {
[INFO] [stdout]    |          ----------- `LayoutError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> carts/src/layout.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 | #[derive(Debug, Fail, PartialEq)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Display` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_LayoutError`
[INFO] [stdout] 33 | pub enum LayoutError {
[INFO] [stdout]    |          ----------- `LayoutError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> carts/src/point.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Fail` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_DirectionParseError`
[INFO] [stdout] 24 | pub enum DirectionParseError {
[INFO] [stdout]    |          ------------------- `DirectionParseError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> carts/src/point.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Display` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_DirectionParseError`
[INFO] [stdout] 24 | pub enum DirectionParseError {
[INFO] [stdout]    |          ------------------- `DirectionParseError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> waterfall/src/lib.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Fail` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseScanError`
[INFO] [stdout] 24 | pub enum ParseScanError {
[INFO] [stdout]    |          -------------- `ParseScanError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> waterfall/src/lib.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Display` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseScanError`
[INFO] [stdout] 24 | pub enum ParseScanError {
[INFO] [stdout]    |          -------------- `ParseScanError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> waterfall/src/lib.rs:254:17
[INFO] [stdout]     |
[INFO] [stdout] 254 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Fail` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseGroundError`
[INFO] [stdout] 255 | pub enum ParseGroundError {
[INFO] [stdout]     |          ---------------- `ParseGroundError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> waterfall/src/lib.rs:254:17
[INFO] [stdout]     |
[INFO] [stdout] 254 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Display` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseGroundError`
[INFO] [stdout] 255 | pub enum ParseGroundError {
[INFO] [stdout]     |          ---------------- `ParseGroundError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> waterfall/src/lib.rs:499:17
[INFO] [stdout]     |
[INFO] [stdout] 499 |     pub fn fill(&mut self) -> WellIterator {
[INFO] [stdout]     |                 ^^^^^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 499 |     pub fn fill(&mut self) -> WellIterator<'_> {
[INFO] [stdout]     |                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> carts/src/bin/playcart.rs:35:10
[INFO] [stdout]    |
[INFO] [stdout] 35 | #[derive(Deserialize)]
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `try_from` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> carts/src/bin/playcart.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(try_from)]
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> carts/src/bin/playcart.rs:35:10
[INFO] [stdout]    |
[INFO] [stdout] 35 | #[derive(Deserialize)]
[INFO] [stdout]    |          ^----------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Deserialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Args`
[INFO] [stdout] 36 | struct Args {
[INFO] [stdout]    |        ---- `Args` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> carts/src/bin/playcart.rs:35:10
[INFO] [stdout]    |
[INFO] [stdout] 35 | #[derive(Deserialize)]
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `try_from` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> carts/src/bin/playcart.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(try_from)]
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> waterfall/src/lib.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Fail` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseScanError`
[INFO] [stdout] 24 | pub enum ParseScanError {
[INFO] [stdout]    |          -------------- `ParseScanError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> waterfall/src/lib.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Display` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseScanError`
[INFO] [stdout] 24 | pub enum ParseScanError {
[INFO] [stdout]    |          -------------- `ParseScanError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> waterfall/src/lib.rs:254:17
[INFO] [stdout]     |
[INFO] [stdout] 254 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Fail` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseGroundError`
[INFO] [stdout] 255 | pub enum ParseGroundError {
[INFO] [stdout]     |          ---------------- `ParseGroundError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> waterfall/src/lib.rs:254:17
[INFO] [stdout]     |
[INFO] [stdout] 254 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Display` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseGroundError`
[INFO] [stdout] 255 | pub enum ParseGroundError {
[INFO] [stdout]     |          ---------------- `ParseGroundError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> waterfall/src/lib.rs:499:17
[INFO] [stdout]     |
[INFO] [stdout] 499 |     pub fn fill(&mut self) -> WellIterator {
[INFO] [stdout]     |                 ^^^^^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 499 |     pub fn fill(&mut self) -> WellIterator<'_> {
[INFO] [stdout]     |                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `outcome`, `rounds`, `score`, `health`, and `victor` are never read
[INFO] [stdout]   --> goblinwars/src/examples.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct CombatExample {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 19 |     pub map: Map,
[INFO] [stdout] 20 |     outcome: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 21 |     rounds: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 22 |     score: Health,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 23 |     health: Health,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 24 |     victor: Species,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CombatExample` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> goblinwars/src/examples.rs:73:17
[INFO] [stdout]    |
[INFO] [stdout] 73 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Fail` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_CombatExampleParseError`
[INFO] [stdout] 74 | pub enum CombatExampleParseError {
[INFO] [stdout]    |          ----------------------- `CombatExampleParseError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> goblinwars/src/examples.rs:73:17
[INFO] [stdout]    |
[INFO] [stdout] 73 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Display` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_CombatExampleParseError`
[INFO] [stdout] 74 | pub enum CombatExampleParseError {
[INFO] [stdout]    |          ----------------------- `CombatExampleParseError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> goblinwars/src/game/mod.rs:54:18
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn round(&mut self) -> Round {
[INFO] [stdout]    |                  ^^^^^^^^^     ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn round(&mut self) -> Round<'_> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> goblinwars/src/game/round.rs:58:17
[INFO] [stdout]    |
[INFO] [stdout] 58 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Fail` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_RoundError`
[INFO] [stdout] 59 | pub enum RoundError {
[INFO] [stdout]    |          ---------- `RoundError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> goblinwars/src/game/round.rs:58:17
[INFO] [stdout]    |
[INFO] [stdout] 58 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Display` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_RoundError`
[INFO] [stdout] 59 | pub enum RoundError {
[INFO] [stdout]    |          ---------- `RoundError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> goblinwars/src/map/mod.rs:41:19
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn status(&self) -> MapStatusView {
[INFO] [stdout]    |                   ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn status(&self) -> MapStatusView<'_> {
[INFO] [stdout]    |                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> goblinwars/src/map/mod.rs:167:39
[INFO] [stdout]     |
[INFO] [stdout] 167 | #[derive(Debug, Clone, PartialEq, Eq, Fail)]
[INFO] [stdout]     |                                       ^---
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `Fail` is not local
[INFO] [stdout]     |                                       move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseMapError`
[INFO] [stdout] 168 | pub enum ParseMapError {
[INFO] [stdout]     |          ------------- `ParseMapError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> goblinwars/src/map/mod.rs:167:39
[INFO] [stdout]     |
[INFO] [stdout] 167 | #[derive(Debug, Clone, PartialEq, Eq, Fail)]
[INFO] [stdout]     |                                       ^---
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `Display` is not local
[INFO] [stdout]     |                                       move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseMapError`
[INFO] [stdout] 168 | pub enum ParseMapError {
[INFO] [stdout]     |          ------------- `ParseMapError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> goblinwars/src/map/tile.rs:9:39
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Debug, Clone, PartialEq, Eq, Fail)]
[INFO] [stdout]    |                                       ^---
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       `Fail` is not local
[INFO] [stdout]    |                                       move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseTileError`
[INFO] [stdout] 10 | pub enum ParseTileError {
[INFO] [stdout]    |          -------------- `ParseTileError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> goblinwars/src/map/tile.rs:9:39
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Debug, Clone, PartialEq, Eq, Fail)]
[INFO] [stdout]    |                                       ^---
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       `Display` is not local
[INFO] [stdout]    |                                       move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseTileError`
[INFO] [stdout] 10 | pub enum ParseTileError {
[INFO] [stdout]    |          -------------- `ParseTileError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> goblinwars/src/sprite/mod.rs:16:39
[INFO] [stdout]    |
[INFO] [stdout] 16 | #[derive(Debug, Clone, PartialEq, Eq, Fail)]
[INFO] [stdout]    |                                       ^---
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       `Fail` is not local
[INFO] [stdout]    |                                       move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseSpeciesError`
[INFO] [stdout] 17 | pub enum ParseSpeciesError {
[INFO] [stdout]    |          ----------------- `ParseSpeciesError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> goblinwars/src/sprite/mod.rs:16:39
[INFO] [stdout]    |
[INFO] [stdout] 16 | #[derive(Debug, Clone, PartialEq, Eq, Fail)]
[INFO] [stdout]    |                                       ^---
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       `Display` is not local
[INFO] [stdout]    |                                       move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseSpeciesError`
[INFO] [stdout] 17 | pub enum ParseSpeciesError {
[INFO] [stdout]    |          ----------------- `ParseSpeciesError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> goblinwars/src/sprite/mod.rs:125:17
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub fn info(&self) -> SpriteInfo {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub fn info(&self) -> SpriteInfo<'_> {
[INFO] [stdout]     |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> goblinwars/src/sprite/mod.rs:129:18
[INFO] [stdout]     |
[INFO] [stdout] 129 |     pub fn glyph(&self) -> SpriteGlyph {
[INFO] [stdout]     |                  ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 129 |     pub fn glyph(&self) -> SpriteGlyph<'_> {
[INFO] [stdout]     |                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> carts/src/bin/playcart.rs:35:10
[INFO] [stdout]    |
[INFO] [stdout] 35 | #[derive(Deserialize)]
[INFO] [stdout]    |          ^----------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Deserialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Args`
[INFO] [stdout] 36 | struct Args {
[INFO] [stdout]    |        ---- `Args` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking aoc2018 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/puzzles/day4.rs:132:16
[INFO] [stdout]     |
[INFO] [stdout] 132 |     #[cfg_attr(feature = "cargo-clippy", allow(clippy::or_fun_call))]
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `cargo-clippy` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/main.rs:33:10
[INFO] [stdout]    |
[INFO] [stdout] 33 | #[derive(Deserialize)]
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `try_from` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(try_from)]
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[macro_use]` attribute cannot be used on crates
[INFO] [stdout]  --> src/main.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: `#[macro_use]` can be applied to extern crates and modules
[INFO] [stdout]   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]   = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `debug` is never read
[INFO] [stdout]   --> goblinwars/src/bin/wars.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | struct Opt {
[INFO] [stdout]    |        --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 35 |     debug: bool,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Opt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:38:49
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn input(day: usize) -> std::io::Result<Box<::std::io::BufRead>> {
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn input(day: usize) -> std::io::Result<Box<dyn (::std::io::BufRead)>> {
[INFO] [stdout]    |                                                 +++++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/puzzles/day4.rs:132:16
[INFO] [stdout]     |
[INFO] [stdout] 132 |     #[cfg_attr(feature = "cargo-clippy", allow(clippy::or_fun_call))]
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `cargo-clippy` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/main.rs:33:10
[INFO] [stdout]    |
[INFO] [stdout] 33 | #[derive(Deserialize)]
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `try_from` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(try_from)]
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[macro_use]` attribute cannot be used on crates
[INFO] [stdout]  --> src/main.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: `#[macro_use]` can be applied to extern crates and modules
[INFO] [stdout]   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]   = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:38:49
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn input(day: usize) -> std::io::Result<Box<::std::io::BufRead>> {
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn input(day: usize) -> std::io::Result<Box<dyn (::std::io::BufRead)>> {
[INFO] [stdout]    |                                                 +++++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> goblinwars/src/game/round.rs:223:13
[INFO] [stdout]     |
[INFO] [stdout] 223 |             ;
[INFO] [stdout]     |             ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `debug` is never read
[INFO] [stdout]   --> goblinwars/src/bin/wars.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | struct Opt {
[INFO] [stdout]    |        --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 35 |     debug: bool,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Opt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `try_from` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> goblinwars/src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(try_from)]
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:60:26
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let solvers: Vec<Box<Fn() -> Result<(), Error>>> = vec![
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let solvers: Vec<Box<dyn Fn() -> Result<(), Error>>> = vec![
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:60:26
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let solvers: Vec<Box<Fn() -> Result<(), Error>>> = vec![
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let solvers: Vec<Box<dyn Fn() -> Result<(), Error>>> = vec![
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Decompile` is never used
[INFO] [stdout]  --> src/elfcode/psuedocoder.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub trait Decompile {
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Patch` is never constructed
[INFO] [stdout]   --> src/puzzles/day11.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 81 | struct Patch {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `geologic_index` is never read
[INFO] [stdout]   --> src/puzzles/day22.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | struct Region {
[INFO] [stdout]    |        ------ field in this struct
[INFO] [stdout] 45 |     geologic_index: Position,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Region` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Position` is never used
[INFO] [stdout]   --> src/puzzles/day23.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Position = i32;
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point3D` is never constructed
[INFO] [stdout]   --> src/puzzles/day23.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct Point3D {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `distance` is never used
[INFO] [stdout]   --> src/puzzles/day23.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Point3D {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] 22 |     fn distance(&self, other: &Self) -> Position {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Nanobot` is never constructed
[INFO] [stdout]   --> src/puzzles/day23.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | struct Nanobot {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `distance` is never used
[INFO] [stdout]   --> src/puzzles/day23.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl Nanobot {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] 34 |     fn distance(&self, other: &Self) -> Position {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ParseNanobotError` is never used
[INFO] [stdout]   --> src/puzzles/day23.rs:40:6
[INFO] [stdout]    |
[INFO] [stdout] 40 | enum ParseNanobotError {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KDNode` is never constructed
[INFO] [stdout]   --> src/puzzles/day23.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | struct KDNode {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `build` is never used
[INFO] [stdout]   --> src/puzzles/day23.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | impl KDNode {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 89 |     fn build(points: &[&Nanobot], depth: usize) -> KDNode {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KDTree` is never constructed
[INFO] [stdout]    --> src/puzzles/day23.rs:125:8
[INFO] [stdout]     |
[INFO] [stdout] 125 | struct KDTree {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:33:10
[INFO] [stdout]    |
[INFO] [stdout] 33 | #[derive(Deserialize)]
[INFO] [stdout]    |          ^----------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Deserialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Args`
[INFO] [stdout] 34 | struct Args {
[INFO] [stdout]    |        ---- `Args` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/elfcode/mod.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Fail` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_RegisterError`
[INFO] [stdout] 17 | pub(crate) enum RegisterError {
[INFO] [stdout]    |                 ------------- `RegisterError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/elfcode/mod.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Display` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_RegisterError`
[INFO] [stdout] 17 | pub(crate) enum RegisterError {
[INFO] [stdout]    |                 ------------- `RegisterError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/elfcode/mod.rs:138:17
[INFO] [stdout]     |
[INFO] [stdout] 138 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Fail` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseOpcodeError`
[INFO] [stdout] 139 | pub(crate) enum ParseOpcodeError {
[INFO] [stdout]     |                 ---------------- `ParseOpcodeError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/elfcode/mod.rs:138:17
[INFO] [stdout]     |
[INFO] [stdout] 138 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Display` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseOpcodeError`
[INFO] [stdout] 139 | pub(crate) enum ParseOpcodeError {
[INFO] [stdout]     |                 ---------------- `ParseOpcodeError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/elfcode/mod.rs:266:17
[INFO] [stdout]     |
[INFO] [stdout] 266 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Fail` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseInstructionError`
[INFO] [stdout] 267 | pub(crate) enum ParseInstructionError {
[INFO] [stdout]     |                 --------------------- `ParseInstructionError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/elfcode/mod.rs:266:17
[INFO] [stdout]     |
[INFO] [stdout] 266 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Display` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseInstructionError`
[INFO] [stdout] 267 | pub(crate) enum ParseInstructionError {
[INFO] [stdout]     |                 --------------------- `ParseInstructionError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/elfcode/mod.rs:314:17
[INFO] [stdout]     |
[INFO] [stdout] 314 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Fail` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ProgramError`
[INFO] [stdout] 315 | pub(crate) enum ProgramError {
[INFO] [stdout]     |                 ------------ `ProgramError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/elfcode/mod.rs:314:17
[INFO] [stdout]     |
[INFO] [stdout] 314 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Display` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ProgramError`
[INFO] [stdout] 315 | pub(crate) enum ProgramError {
[INFO] [stdout]     |                 ------------ `ProgramError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/elfcode/mod.rs:377:23
[INFO] [stdout]     |
[INFO] [stdout] 377 |     pub(crate) fn run(&mut self) -> Process {
[INFO] [stdout]     |                       ^^^^^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 377 |     pub(crate) fn run(&mut self) -> Process<'_> {
[INFO] [stdout]     |                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/elfcode/mod.rs:381:39
[INFO] [stdout]     |
[INFO] [stdout] 381 |     pub(crate) fn monitor_instruction(&mut self, instruction: usize) -> InstructionMonitor {
[INFO] [stdout]     |                                       ^^^^^^^^^                         ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 381 |     pub(crate) fn monitor_instruction(&mut self, instruction: usize) -> InstructionMonitor<'_> {
[INFO] [stdout]     |                                                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/elfcode/mod.rs:433:17
[INFO] [stdout]     |
[INFO] [stdout] 433 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Fail` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseIPError`
[INFO] [stdout] 434 | pub(crate) enum ParseIPError {
[INFO] [stdout]     |                 ------------ `ParseIPError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/elfcode/mod.rs:433:17
[INFO] [stdout]     |
[INFO] [stdout] 433 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Display` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseIPError`
[INFO] [stdout] 434 | pub(crate) enum ParseIPError {
[INFO] [stdout]     |                 ------------ `ParseIPError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/puzzles/day14.rs:48:13
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn iter(&mut self) -> ScoreboardIter {
[INFO] [stdout]    |             ^^^^^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |             |
[INFO] [stdout]    |             the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn iter(&mut self) -> ScoreboardIter<'_> {
[INFO] [stdout]    |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/puzzles/day14.rs:55:13
[INFO] [stdout]    |
[INFO] [stdout] 55 |     fn hunt(&mut self, pattern: Vec<Recipe>) -> ScoreboardPattern {
[INFO] [stdout]    |             ^^^^^^^^^                           ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |             |
[INFO] [stdout]    |             the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 55 |     fn hunt(&mut self, pattern: Vec<Recipe>) -> ScoreboardPattern<'_> {
[INFO] [stdout]    |                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/puzzles/day16.rs:101:17
[INFO] [stdout]     |
[INFO] [stdout] 101 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Fail` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseRawInstructionError`
[INFO] [stdout] 102 | enum ParseRawInstructionError {
[INFO] [stdout]     |      ------------------------ `ParseRawInstructionError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/puzzles/day16.rs:101:17
[INFO] [stdout]     |
[INFO] [stdout] 101 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Display` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseRawInstructionError`
[INFO] [stdout] 102 | enum ParseRawInstructionError {
[INFO] [stdout]     |      ------------------------ `ParseRawInstructionError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/puzzles/day16.rs:144:17
[INFO] [stdout]     |
[INFO] [stdout] 144 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Fail` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseRegisterError`
[INFO] [stdout] 145 | pub(crate) enum ParseRegisterError {
[INFO] [stdout]     |                 ------------------ `ParseRegisterError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/puzzles/day16.rs:144:17
[INFO] [stdout]     |
[INFO] [stdout] 144 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Display` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseRegisterError`
[INFO] [stdout] 145 | pub(crate) enum ParseRegisterError {
[INFO] [stdout]     |                 ------------------ `ParseRegisterError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/puzzles/day16.rs:210:17
[INFO] [stdout]     |
[INFO] [stdout] 210 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Fail` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseSampleError`
[INFO] [stdout] 211 | enum ParseSampleError {
[INFO] [stdout]     |      ---------------- `ParseSampleError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/puzzles/day16.rs:210:17
[INFO] [stdout]     |
[INFO] [stdout] 210 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Display` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseSampleError`
[INFO] [stdout] 211 | enum ParseSampleError {
[INFO] [stdout]     |      ---------------- `ParseSampleError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/puzzles/day16.rs:286:17
[INFO] [stdout]     |
[INFO] [stdout] 286 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Fail` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_DecoderError`
[INFO] [stdout] 287 | enum DecoderError {
[INFO] [stdout]     |      ------------ `DecoderError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/puzzles/day16.rs:286:17
[INFO] [stdout]     |
[INFO] [stdout] 286 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Display` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_DecoderError`
[INFO] [stdout] 287 | enum DecoderError {
[INFO] [stdout]     |      ------------ `DecoderError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/puzzles/day18.rs:57:17
[INFO] [stdout]    |
[INFO] [stdout] 57 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Fail` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseAcreError`
[INFO] [stdout] 58 | enum ParseAcreError {
[INFO] [stdout]    |      -------------- `ParseAcreError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/puzzles/day18.rs:57:17
[INFO] [stdout]    |
[INFO] [stdout] 57 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Display` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseAcreError`
[INFO] [stdout] 58 | enum ParseAcreError {
[INFO] [stdout]    |      -------------- `ParseAcreError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/puzzles/day20.rs:59:17
[INFO] [stdout]    |
[INFO] [stdout] 59 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Fail` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseDirectionError`
[INFO] [stdout] 60 | enum ParseDirectionError {
[INFO] [stdout]    |      ------------------- `ParseDirectionError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/puzzles/day20.rs:59:17
[INFO] [stdout]    |
[INFO] [stdout] 59 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Display` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseDirectionError`
[INFO] [stdout] 60 | enum ParseDirectionError {
[INFO] [stdout]    |      ------------------- `ParseDirectionError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/puzzles/day20.rs:176:17
[INFO] [stdout]     |
[INFO] [stdout] 176 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Fail` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseError`
[INFO] [stdout] 177 | enum ParseError {
[INFO] [stdout]     |      ---------- `ParseError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/puzzles/day20.rs:176:17
[INFO] [stdout]     |
[INFO] [stdout] 176 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Display` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseError`
[INFO] [stdout] 177 | enum ParseError {
[INFO] [stdout]     |      ---------- `ParseError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/puzzles/day22.rs:126:17
[INFO] [stdout]     |
[INFO] [stdout] 126 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Fail` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_CaveParseError`
[INFO] [stdout] 127 | enum CaveParseError {
[INFO] [stdout]     |      -------------- `CaveParseError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/puzzles/day22.rs:126:17
[INFO] [stdout]     |
[INFO] [stdout] 126 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Display` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_CaveParseError`
[INFO] [stdout] 127 | enum CaveParseError {
[INFO] [stdout]     |      -------------- `CaveParseError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/puzzles/day23.rs:39:17
[INFO] [stdout]    |
[INFO] [stdout] 39 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Fail` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseNanobotError`
[INFO] [stdout] 40 | enum ParseNanobotError {
[INFO] [stdout]    |      ----------------- `ParseNanobotError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/puzzles/day23.rs:39:17
[INFO] [stdout]    |
[INFO] [stdout] 39 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Display` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseNanobotError`
[INFO] [stdout] 40 | enum ParseNanobotError {
[INFO] [stdout]    |      ----------------- `ParseNanobotError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/puzzles/day3.rs:72:15
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn points(&self) -> ClaimPoints {
[INFO] [stdout]    |               ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |               |
[INFO] [stdout]    |               the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn points(&self) -> ClaimPoints<'_> {
[INFO] [stdout]    |                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `health` is never read
[INFO] [stdout]   --> goblinwars/src/examples.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct CombatExample {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     health: Health,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CombatExample` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> goblinwars/src/examples.rs:73:17
[INFO] [stdout]    |
[INFO] [stdout] 73 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Fail` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_CombatExampleParseError`
[INFO] [stdout] 74 | pub enum CombatExampleParseError {
[INFO] [stdout]    |          ----------------------- `CombatExampleParseError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> goblinwars/src/examples.rs:73:17
[INFO] [stdout]    |
[INFO] [stdout] 73 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Display` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_CombatExampleParseError`
[INFO] [stdout] 74 | pub enum CombatExampleParseError {
[INFO] [stdout]    |          ----------------------- `CombatExampleParseError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> goblinwars/src/game/mod.rs:54:18
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn round(&mut self) -> Round {
[INFO] [stdout]    |                  ^^^^^^^^^     ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn round(&mut self) -> Round<'_> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> goblinwars/src/game/round.rs:58:17
[INFO] [stdout]    |
[INFO] [stdout] 58 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Fail` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_RoundError`
[INFO] [stdout] 59 | pub enum RoundError {
[INFO] [stdout]    |          ---------- `RoundError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> goblinwars/src/game/round.rs:58:17
[INFO] [stdout]    |
[INFO] [stdout] 58 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Display` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_RoundError`
[INFO] [stdout] 59 | pub enum RoundError {
[INFO] [stdout]    |          ---------- `RoundError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> goblinwars/src/map/mod.rs:41:19
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn status(&self) -> MapStatusView {
[INFO] [stdout]    |                   ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn status(&self) -> MapStatusView<'_> {
[INFO] [stdout]    |                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> goblinwars/src/map/mod.rs:167:39
[INFO] [stdout]     |
[INFO] [stdout] 167 | #[derive(Debug, Clone, PartialEq, Eq, Fail)]
[INFO] [stdout]     |                                       ^---
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `Fail` is not local
[INFO] [stdout]     |                                       move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseMapError`
[INFO] [stdout] 168 | pub enum ParseMapError {
[INFO] [stdout]     |          ------------- `ParseMapError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> goblinwars/src/map/mod.rs:167:39
[INFO] [stdout]     |
[INFO] [stdout] 167 | #[derive(Debug, Clone, PartialEq, Eq, Fail)]
[INFO] [stdout]     |                                       ^---
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       `Display` is not local
[INFO] [stdout]     |                                       move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseMapError`
[INFO] [stdout] 168 | pub enum ParseMapError {
[INFO] [stdout]     |          ------------- `ParseMapError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> goblinwars/src/map/tile.rs:9:39
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Debug, Clone, PartialEq, Eq, Fail)]
[INFO] [stdout]    |                                       ^---
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       `Fail` is not local
[INFO] [stdout]    |                                       move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseTileError`
[INFO] [stdout] 10 | pub enum ParseTileError {
[INFO] [stdout]    |          -------------- `ParseTileError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> goblinwars/src/map/tile.rs:9:39
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Debug, Clone, PartialEq, Eq, Fail)]
[INFO] [stdout]    |                                       ^---
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       `Display` is not local
[INFO] [stdout]    |                                       move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseTileError`
[INFO] [stdout] 10 | pub enum ParseTileError {
[INFO] [stdout]    |          -------------- `ParseTileError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> goblinwars/src/sprite/mod.rs:16:39
[INFO] [stdout]    |
[INFO] [stdout] 16 | #[derive(Debug, Clone, PartialEq, Eq, Fail)]
[INFO] [stdout]    |                                       ^---
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       `Fail` is not local
[INFO] [stdout]    |                                       move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseSpeciesError`
[INFO] [stdout] 17 | pub enum ParseSpeciesError {
[INFO] [stdout]    |          ----------------- `ParseSpeciesError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> goblinwars/src/sprite/mod.rs:16:39
[INFO] [stdout]    |
[INFO] [stdout] 16 | #[derive(Debug, Clone, PartialEq, Eq, Fail)]
[INFO] [stdout]    |                                       ^---
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       `Display` is not local
[INFO] [stdout]    |                                       move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseSpeciesError`
[INFO] [stdout] 17 | pub enum ParseSpeciesError {
[INFO] [stdout]    |          ----------------- `ParseSpeciesError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> goblinwars/src/sprite/mod.rs:125:17
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub fn info(&self) -> SpriteInfo {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub fn info(&self) -> SpriteInfo<'_> {
[INFO] [stdout]     |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> goblinwars/src/sprite/mod.rs:129:18
[INFO] [stdout]     |
[INFO] [stdout] 129 |     pub fn glyph(&self) -> SpriteGlyph {
[INFO] [stdout]     |                  ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 129 |     pub fn glyph(&self) -> SpriteGlyph<'_> {
[INFO] [stdout]     |                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Decompile` is never used
[INFO] [stdout]  --> src/elfcode/psuedocoder.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub trait Decompile {
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `geologic_index` is never read
[INFO] [stdout]   --> src/puzzles/day22.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | struct Region {
[INFO] [stdout]    |        ------ field in this struct
[INFO] [stdout] 45 |     geologic_index: Position,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Region` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KDNode` is never constructed
[INFO] [stdout]   --> src/puzzles/day23.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | struct KDNode {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `build` is never used
[INFO] [stdout]   --> src/puzzles/day23.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | impl KDNode {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 89 |     fn build(points: &[&Nanobot], depth: usize) -> KDNode {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KDTree` is never constructed
[INFO] [stdout]    --> src/puzzles/day23.rs:125:8
[INFO] [stdout]     |
[INFO] [stdout] 125 | struct KDTree {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:33:10
[INFO] [stdout]    |
[INFO] [stdout] 33 | #[derive(Deserialize)]
[INFO] [stdout]    |          ^----------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Deserialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Args`
[INFO] [stdout] 34 | struct Args {
[INFO] [stdout]    |        ---- `Args` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/elfcode/mod.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Fail` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_RegisterError`
[INFO] [stdout] 17 | pub(crate) enum RegisterError {
[INFO] [stdout]    |                 ------------- `RegisterError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/elfcode/mod.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Display` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_RegisterError`
[INFO] [stdout] 17 | pub(crate) enum RegisterError {
[INFO] [stdout]    |                 ------------- `RegisterError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/elfcode/mod.rs:138:17
[INFO] [stdout]     |
[INFO] [stdout] 138 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Fail` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseOpcodeError`
[INFO] [stdout] 139 | pub(crate) enum ParseOpcodeError {
[INFO] [stdout]     |                 ---------------- `ParseOpcodeError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/elfcode/mod.rs:138:17
[INFO] [stdout]     |
[INFO] [stdout] 138 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Display` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseOpcodeError`
[INFO] [stdout] 139 | pub(crate) enum ParseOpcodeError {
[INFO] [stdout]     |                 ---------------- `ParseOpcodeError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/elfcode/mod.rs:266:17
[INFO] [stdout]     |
[INFO] [stdout] 266 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Fail` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseInstructionError`
[INFO] [stdout] 267 | pub(crate) enum ParseInstructionError {
[INFO] [stdout]     |                 --------------------- `ParseInstructionError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/elfcode/mod.rs:266:17
[INFO] [stdout]     |
[INFO] [stdout] 266 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Display` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseInstructionError`
[INFO] [stdout] 267 | pub(crate) enum ParseInstructionError {
[INFO] [stdout]     |                 --------------------- `ParseInstructionError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/elfcode/mod.rs:314:17
[INFO] [stdout]     |
[INFO] [stdout] 314 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Fail` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ProgramError`
[INFO] [stdout] 315 | pub(crate) enum ProgramError {
[INFO] [stdout]     |                 ------------ `ProgramError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/elfcode/mod.rs:314:17
[INFO] [stdout]     |
[INFO] [stdout] 314 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Display` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ProgramError`
[INFO] [stdout] 315 | pub(crate) enum ProgramError {
[INFO] [stdout]     |                 ------------ `ProgramError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/elfcode/mod.rs:377:23
[INFO] [stdout]     |
[INFO] [stdout] 377 |     pub(crate) fn run(&mut self) -> Process {
[INFO] [stdout]     |                       ^^^^^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 377 |     pub(crate) fn run(&mut self) -> Process<'_> {
[INFO] [stdout]     |                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/elfcode/mod.rs:381:39
[INFO] [stdout]     |
[INFO] [stdout] 381 |     pub(crate) fn monitor_instruction(&mut self, instruction: usize) -> InstructionMonitor {
[INFO] [stdout]     |                                       ^^^^^^^^^                         ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 381 |     pub(crate) fn monitor_instruction(&mut self, instruction: usize) -> InstructionMonitor<'_> {
[INFO] [stdout]     |                                                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/elfcode/mod.rs:433:17
[INFO] [stdout]     |
[INFO] [stdout] 433 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Fail` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseIPError`
[INFO] [stdout] 434 | pub(crate) enum ParseIPError {
[INFO] [stdout]     |                 ------------ `ParseIPError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/elfcode/mod.rs:433:17
[INFO] [stdout]     |
[INFO] [stdout] 433 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Display` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseIPError`
[INFO] [stdout] 434 | pub(crate) enum ParseIPError {
[INFO] [stdout]     |                 ------------ `ParseIPError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/puzzles/day11.rs:193:17
[INFO] [stdout]     |
[INFO] [stdout] 193 |         fn view(&self, patch: &Patch) -> PatchDisplay {
[INFO] [stdout]     |                 ^^^^^                    ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 193 |         fn view(&self, patch: &Patch) -> PatchDisplay<'_> {
[INFO] [stdout]     |                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/puzzles/day14.rs:48:13
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn iter(&mut self) -> ScoreboardIter {
[INFO] [stdout]    |             ^^^^^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |             |
[INFO] [stdout]    |             the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn iter(&mut self) -> ScoreboardIter<'_> {
[INFO] [stdout]    |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/puzzles/day14.rs:55:13
[INFO] [stdout]    |
[INFO] [stdout] 55 |     fn hunt(&mut self, pattern: Vec<Recipe>) -> ScoreboardPattern {
[INFO] [stdout]    |             ^^^^^^^^^                           ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |             |
[INFO] [stdout]    |             the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 55 |     fn hunt(&mut self, pattern: Vec<Recipe>) -> ScoreboardPattern<'_> {
[INFO] [stdout]    |                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/puzzles/day16.rs:101:17
[INFO] [stdout]     |
[INFO] [stdout] 101 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Fail` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseRawInstructionError`
[INFO] [stdout] 102 | enum ParseRawInstructionError {
[INFO] [stdout]     |      ------------------------ `ParseRawInstructionError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/puzzles/day16.rs:101:17
[INFO] [stdout]     |
[INFO] [stdout] 101 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Display` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseRawInstructionError`
[INFO] [stdout] 102 | enum ParseRawInstructionError {
[INFO] [stdout]     |      ------------------------ `ParseRawInstructionError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/puzzles/day16.rs:144:17
[INFO] [stdout]     |
[INFO] [stdout] 144 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Fail` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseRegisterError`
[INFO] [stdout] 145 | pub(crate) enum ParseRegisterError {
[INFO] [stdout]     |                 ------------------ `ParseRegisterError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/puzzles/day16.rs:144:17
[INFO] [stdout]     |
[INFO] [stdout] 144 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Display` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseRegisterError`
[INFO] [stdout] 145 | pub(crate) enum ParseRegisterError {
[INFO] [stdout]     |                 ------------------ `ParseRegisterError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/puzzles/day16.rs:210:17
[INFO] [stdout]     |
[INFO] [stdout] 210 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Fail` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseSampleError`
[INFO] [stdout] 211 | enum ParseSampleError {
[INFO] [stdout]     |      ---------------- `ParseSampleError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/puzzles/day16.rs:210:17
[INFO] [stdout]     |
[INFO] [stdout] 210 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Display` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseSampleError`
[INFO] [stdout] 211 | enum ParseSampleError {
[INFO] [stdout]     |      ---------------- `ParseSampleError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/puzzles/day16.rs:286:17
[INFO] [stdout]     |
[INFO] [stdout] 286 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Fail` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_DecoderError`
[INFO] [stdout] 287 | enum DecoderError {
[INFO] [stdout]     |      ------------ `DecoderError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/puzzles/day16.rs:286:17
[INFO] [stdout]     |
[INFO] [stdout] 286 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Display` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_DecoderError`
[INFO] [stdout] 287 | enum DecoderError {
[INFO] [stdout]     |      ------------ `DecoderError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/puzzles/day18.rs:57:17
[INFO] [stdout]    |
[INFO] [stdout] 57 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Fail` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseAcreError`
[INFO] [stdout] 58 | enum ParseAcreError {
[INFO] [stdout]    |      -------------- `ParseAcreError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/puzzles/day18.rs:57:17
[INFO] [stdout]    |
[INFO] [stdout] 57 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Display` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseAcreError`
[INFO] [stdout] 58 | enum ParseAcreError {
[INFO] [stdout]    |      -------------- `ParseAcreError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/puzzles/day20.rs:59:17
[INFO] [stdout]    |
[INFO] [stdout] 59 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Fail` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseDirectionError`
[INFO] [stdout] 60 | enum ParseDirectionError {
[INFO] [stdout]    |      ------------------- `ParseDirectionError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/puzzles/day20.rs:59:17
[INFO] [stdout]    |
[INFO] [stdout] 59 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Display` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseDirectionError`
[INFO] [stdout] 60 | enum ParseDirectionError {
[INFO] [stdout]    |      ------------------- `ParseDirectionError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/puzzles/day20.rs:176:17
[INFO] [stdout]     |
[INFO] [stdout] 176 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Fail` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseError`
[INFO] [stdout] 177 | enum ParseError {
[INFO] [stdout]     |      ---------- `ParseError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/puzzles/day20.rs:176:17
[INFO] [stdout]     |
[INFO] [stdout] 176 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Display` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseError`
[INFO] [stdout] 177 | enum ParseError {
[INFO] [stdout]     |      ---------- `ParseError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/puzzles/day22.rs:126:17
[INFO] [stdout]     |
[INFO] [stdout] 126 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Fail` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_CaveParseError`
[INFO] [stdout] 127 | enum CaveParseError {
[INFO] [stdout]     |      -------------- `CaveParseError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/puzzles/day22.rs:126:17
[INFO] [stdout]     |
[INFO] [stdout] 126 | #[derive(Debug, Fail)]
[INFO] [stdout]     |                 ^---
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `Display` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_CaveParseError`
[INFO] [stdout] 127 | enum CaveParseError {
[INFO] [stdout]     |      -------------- `CaveParseError` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/puzzles/day23.rs:39:17
[INFO] [stdout]    |
[INFO] [stdout] 39 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Fail` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ParseNanobotError`
[INFO] [stdout] 40 | enum ParseNanobotError {
[INFO] [stdout]    |      ----------------- `ParseNanobotError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/puzzles/day23.rs:39:17
[INFO] [stdout]    |
[INFO] [stdout] 39 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^---
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Display` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ParseNanobotError`
[INFO] [stdout] 40 | enum ParseNanobotError {
[INFO] [stdout]    |      ----------------- `ParseNanobotError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/puzzles/day3.rs:72:15
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn points(&self) -> ClaimPoints {
[INFO] [stdout]    |               ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |               |
[INFO] [stdout]    |               the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn points(&self) -> ClaimPoints<'_> {
[INFO] [stdout]    |                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 17.73s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: criterion v0.2.5, syn v0.14.9
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 4`
[INFO] running `Command { std: "docker" "inspect" "d006c859d806bbe4efcdf77292de6a4c9f718f9795bc11b00c86dc67966e45a8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d006c859d806bbe4efcdf77292de6a4c9f718f9795bc11b00c86dc67966e45a8", kill_on_drop: false }`
[INFO] [stdout] d006c859d806bbe4efcdf77292de6a4c9f718f9795bc11b00c86dc67966e45a8
